//////////////////////////////////////////////////////////////////////////////
//                                                                          //
//     Filename: AUSlotsXMLTranslator.h                                     //
//  Create date: Oct 03, 2005                                               //
//                                                                          //
//////////////////////////////////////////////////////////////////////////////
//                                                                          //
//  Description: This file describes the AUSlotsXMLTranslator class.        //
//                This class is a protocol translator that translates from  //
//                the RTG "Australian" Slots (Dynamite Games) server        //
//                protocol to XML and back.                                 //
//                                                                          //
//////////////////////////////////////////////////////////////////////////////
//       Copyright (c) 2005 - Realtime Gaming.  All rights reserved.        //
//////////////////////////////////////////////////////////////////////////////

#ifndef __AU_SLOTS_XML_TRANSLATOR__
#define __AU_SLOTS_XML_TRANSLATOR__

#include "SlotsXMLTranslator.h"

//////////////////////////////////////////////////////////////////////////////
// AUSlotsXMLTranslator Class
//////////////////////////////////////////////////////////////////////////////
class AUSlotsXMLTranslator : public SlotsXMLTranslator
{
public:
    AUSlotsXMLTranslator( Server* pServer, Connection* pParent );
    virtual ~AUSlotsXMLTranslator();

    // Public Interface

    virtual bool8  TranslateIncomingMessage( uint8* pGameInBuff,  uint32 nGameInBuffSize, uint8* pBuff, uint32 nOutBuffSize );
    virtual uint32 TranslateOutgoingMessage( uint8* pOutBuff, uint32 nOutBuffSize, uint8* pGameOutBuff, uint32 nGameOutBuffSize, uint32 nTotalGameBytes );

protected:
	// Internal Helpers

	// Incoming
	virtual bool8 TranslateInSpin    ( XMLDoc* pDoc, uint8* pGameInBuff,  uint32 nGameInBuffSize );

	// Outgoing
	virtual bool8 TranslateOutLogin        ( uint8* pOutBuff, uint32 nOutBuffSize, uint8* pGameOutBuff, uint32 nGameOutBuffSize );
	virtual bool8 TranslateOutReels        ( uint8* pOutBuff, uint32 nOutBuffSize, uint8* pGameOutBuff, uint32 nGameOutBuffSize );
	virtual bool8 TranslateOutSpin         ( uint8* pOutBuff, uint32 nOutBuffSize, uint8* pGameOutBuff, uint32 nGameOutBuffSize );
	virtual bool8 TranslateOutSave         ( uint8* pOutBuff, uint32 nOutBuffSize, uint8* pGameOutBuff, uint32 nGameOutBuffSize );
	virtual bool8 TranslateOutSubGame      ( uint8* pOutBuff, uint32 nOutBuffSize, uint8* pGameOutBuff, uint32 nGameOutBuffSize );
	virtual bool8 TranslateOutBonus        ( uint8* pOutBuff, uint32 nOutBuffSize, uint8* pGameOutBuff, uint32 nGameOutBuffSize );
};

#endif //#ifndef __AU_SLOTS_XML_TRANSLATOR__